
package com.jf.cloud.live.model;

import com.jf.cloud.common.model.BaseModel;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 直播间
 *
 * @author zz
 * @date 2022-08-17 17:09:06
 */
public class LiveRoom extends BaseModel implements Serializable{
    private static final long serialVersionUID = 1L;

    /**
     * 直播间信息
     */
    private Long id;

    /**
     * 店铺id
     */
    private Long shopId;

    /**
     * 微信直播间id
     */
    private Integer roomId;

    /**
     * 直播间名称
     */
    private String name;

    /**
     * 主播昵称
     */
    private String anchorName;

    /**
     * 主播微信号
     */
    private String anchorWechat;

    /**
     * 背景图
     */
    private String coverImg;

    /**
     * 主播分享图
     */
    private String shareImg;

    /**
     * 购物直播频道封面图
     */
    private String feedsImg;

    /**
     * 背景图微信的media_id
     */
    private String coverImgId;

    /**
     * 主播分享图微信的media_id
     */
    private String shareImgId;

    /**
     * 直播封面图微信的media_id
     */
    private String feedsImgId;

    /**
     * 是否开启官方收录
     */
    private Integer isFeedsPublic;

    /**
     * 直播间类型 1: 推流，0：手机直播
     */
    private Integer type;

    /**
     * 1.竖屏 2.横屏
     */
    private Integer screenType;

    /**
     * 直播间功能
     */
    private String roomTools;

    public RoomToolsVO getRoomToolsVo() {
        return roomToolsVo;
    }

    public void setRoomToolsVo(RoomToolsVO roomToolsVo) {
        this.roomToolsVo = roomToolsVo;
    }

    @Schema(description = "直播间功能" )
    private LiveRoom.RoomToolsVO roomToolsVo;

    /**
     * 直播间状态。101：直播中，102：未开始，103已结束，104禁播，105：暂停，106：异常，107：已过期
     */
    private Integer liveStatus;

    /**
     * 是否置顶 1.是 0.不是
     */
    private Integer roomTop;

    /**
     * 直播开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 直播结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 申请时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    @Schema(description = "商品信息" )
    private List<LiveProdStore> liveProdStores;

    public List<LiveProdStore> getLiveProdStores() {
        return liveProdStores;
    }

    public void setLiveProdStores(List<LiveProdStore> liveProdStores) {
        this.liveProdStores = liveProdStores;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Integer getRoomId() {
        return roomId;
    }

    public void setRoomId(Integer roomId) {
        this.roomId = roomId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAnchorName() {
        return anchorName;
    }

    public void setAnchorName(String anchorName) {
        this.anchorName = anchorName;
    }

    public String getAnchorWechat() {
        return anchorWechat;
    }

    public void setAnchorWechat(String anchorWechat) {
        this.anchorWechat = anchorWechat;
    }

    public String getCoverImg() {
        return coverImg;
    }

    public void setCoverImg(String coverImg) {
        this.coverImg = coverImg;
    }

    public String getShareImg() {
        return shareImg;
    }

    public void setShareImg(String shareImg) {
        this.shareImg = shareImg;
    }

    public String getFeedsImg() {
        return feedsImg;
    }

    public void setFeedsImg(String feedsImg) {
        this.feedsImg = feedsImg;
    }

    public String getCoverImgId() {
        return coverImgId;
    }

    public void setCoverImgId(String coverImgId) {
        this.coverImgId = coverImgId;
    }

    public String getShareImgId() {
        return shareImgId;
    }

    public void setShareImgId(String shareImgId) {
        this.shareImgId = shareImgId;
    }

    public String getFeedsImgId() {
        return feedsImgId;
    }

    public void setFeedsImgId(String feedsImgId) {
        this.feedsImgId = feedsImgId;
    }

    public Integer getIsFeedsPublic() {
        return isFeedsPublic;
    }

    public void setIsFeedsPublic(Integer isFeedsPublic) {
        this.isFeedsPublic = isFeedsPublic;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getScreenType() {
        return screenType;
    }

    public void setScreenType(Integer screenType) {
        this.screenType = screenType;
    }

    public String getRoomTools() {
        return roomTools;
    }

    public void setRoomTools(String roomTools) {
        this.roomTools = roomTools;
    }

    public Integer getLiveStatus() {
        return liveStatus;
    }

    public void setLiveStatus(Integer liveStatus) {
        this.liveStatus = liveStatus;
    }

    public Integer getRoomTop() {
        return roomTop;
    }

    public void setRoomTop(Integer roomTop) {
        this.roomTop = roomTop;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getApplyTime() {
        return applyTime;
    }

    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    @Override
    public String toString() {
        return "LiveRoom{" +
                "id=" + id +
                ",shopId=" + shopId +
                ",roomId=" + roomId +
                ",name=" + name +
                ",anchorName=" + anchorName +
                ",anchorWechat=" + anchorWechat +
                ",coverImg=" + coverImg +
                ",shareImg=" + shareImg +
                ",feedsImg=" + feedsImg +
                ",coverImgId=" + coverImgId +
                ",shareImgId=" + shareImgId +
                ",feedsImgId=" + feedsImgId +
                ",isFeedsPublic=" + isFeedsPublic +
                ",type=" + type +
                ",screenType=" + screenType +
                ",roomTools=" + roomTools +
                ",liveStatus=" + liveStatus +
                ",roomTop=" + roomTop +
                ",startTime=" + startTime +
                ",endTime=" + endTime +
                ",applyTime=" + applyTime +
                ",createTime=" + createTime +
                ",updateTime=" + updateTime +
                '}';
    }

    public class RoomToolsVO {

        @Schema(description = "是否关闭客服 0 开启，1 关闭" )
        private Integer closeKf;

        @Schema(description = "是否关闭点赞  0 开启，1 关闭" )
        private Integer closeLike;

        @Schema(description = " 是否关闭货架  0 开启，1 关闭" )
        private Integer closeGoods;

        @Schema(description = "是否关闭评论  0 开启，1 关闭" )
        private Integer closeComment;

        @Schema(description = " 是否关闭回放  0 开启，1 关闭" )
        private Integer closeReplay;

        @Schema(description = "是否关闭分享  0 开启，1 关闭" )
        private Integer closeShare;

        public Integer getCloseKf() {
            return closeKf;
        }

        public void setCloseKf(Integer closeKf) {
            this.closeKf = closeKf;
        }

        public Integer getCloseLike() {
            return closeLike;
        }

        public void setCloseLike(Integer closeLike) {
            this.closeLike = closeLike;
        }

        public Integer getCloseGoods() {
            return closeGoods;
        }

        public void setCloseGoods(Integer closeGoods) {
            this.closeGoods = closeGoods;
        }

        public Integer getCloseComment() {
            return closeComment;
        }

        public void setCloseComment(Integer closeComment) {
            this.closeComment = closeComment;
        }

        public Integer getCloseReplay() {
            return closeReplay;
        }

        public void setCloseReplay(Integer closeReplay) {
            this.closeReplay = closeReplay;
        }

        public Integer getCloseShare() {
            return closeShare;
        }

        public void setCloseShare(Integer closeShare) {
            this.closeShare = closeShare;
        }

        @Override
        public String toString() {
            return "RoomToolsVO{" +
                    "closeKf=" + closeKf +
                    ", closeLike=" + closeLike +
                    ", closeGoods=" + closeGoods +
                    ", closeComment=" + closeComment +
                    ", closeReplay=" + closeReplay +
                    ", closeShare=" + closeShare +
                    '}';
        }
    }
}
